package com.zbkj.service.service.order.merchant;

import com.github.pagehelper.PageInfo;
import com.zbkj.dal.base.enums.show.EnumShowVO;
import com.zbkj.dal.pojo.request.OrderSendRequest;
import com.zbkj.dal.pojo.request.order.merchant.AdminMerchantRentOrderQueryRequest;
import com.zbkj.dal.pojo.request.order.merchant.AdminMerchantRentOrderVerifyRequest;
import com.zbkj.dal.pojo.response.order.merchant.MerchantOrderDetailNewResponse;
import com.zbkj.dal.pojo.response.order.merchant.MerchantOrderPageNewResponse;
import com.zbkj.dal.pojo.vo.LogisticsResultVo;

import java.util.List;

/**
 * @author wangzhengyan
 * @date 2024/4/8 5:24 PM
 */
public interface AdminMerchantRentOrderV2Service {
    // 订单状态
    List<EnumShowVO<Integer>> getOrderStatusList();



    /**
     * 获取商户后台-订单管理-承享订单列表
     *
     * @param request 请求参数
     * @return 订单列表
     */
    PageInfo<MerchantOrderPageNewResponse> getAdminMerchantOrderList(AdminMerchantRentOrderQueryRequest request);

    /**
     * 获取商户后台-订单管理-承享订单详情
     *
     * @param orderNo 订单号
     * @return 订单详情
     */
    MerchantOrderDetailNewResponse getAdminMerchantOrderDetail(String orderNo);

    /**
     * 确认收货
     */
    Boolean confirmReceiptMerchantOrder(String orderNo);

    /**
     * 确认提货
     *
     * @param deliveryCode 提货码
     * @param orderNo 订单号
     */
    Boolean confirmDeliveryMerchantOrder(String orderNo, String deliveryCode);

    /**
     * 发货
     */
    Boolean deliveryMerchantOrder(OrderSendRequest orderNo);

    /**
     * 查看订单物流轨迹
     * @param orderNo 订单号
     * @return List<LogisticsResultVo>
     */
    List<LogisticsResultVo> getLogisticsMerchantOrder(String orderNo);

    /**
     * 验货
     */
    Boolean checkMerchantOrder(AdminMerchantRentOrderVerifyRequest request);

    /**
     * 催收
     */
    Boolean urgeMerchantOrder(String orderNo);



}
